package com.yxw.live_vod_facade.feign;

import com.yxw.live_vod_facade.dto.*;
import com.yxw.live_vod_facade.vo.ShopHomePageVO;
import com.yxw.live_vod_facade.vo.ShopVO;
import com.yxw.live_vod_facade.vo.UploadSourceMaterialReviewVO;
import com.yxw.yxnet_cd_center.common.dto.PageVO;
import com.yxw.yxnet_cd_center.common.utils.BaseResult;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient(name = "live-vod-boot", contextId = "shop")
public interface ShopFeignClient {

    @ApiOperation(value = "获取店铺主页审核详情")
    @PostMapping(value = "/api/shop/get_shop_homepage_review_by_id")
    public BaseResult<UploadSourceMaterialReviewVO> getShopHomePageReviewById(@RequestParam("materialId") String materialId);

    @ApiOperation(value = "获取店铺主页审核列表")
    @PostMapping(value = "/api/shop/get_shop_homepage_review_list")
    public BaseResult<PageVO<UploadSourceMaterialReviewVO>> getShopHomePageReviewList(@RequestBody ShopHomepageReviewQueryDTO queryDTO) ;

    @ApiOperation(value = "店铺主页审核处理")
    @PostMapping(value = "/api/shop/is_shop_homepage_review")
    public BaseResult isShopHomepageReview(@RequestBody ReviewExamineDTO examineDTO);

    @ApiOperation(value = "获取店铺主页信息")
    @PostMapping(value = "/api/shop/get_shop_homepage")
    public BaseResult<ShopHomePageVO> getShopHomePage(@RequestParam("shopId") String shopId);

    @ApiOperation(value = "获取店铺列表")
    @PostMapping(value = "/api/shop/get_shop_list")
    public BaseResult<PageVO<ShopHomePageVO>> getShopList(@RequestBody ShopQueryDTO dto);

    @ApiOperation(value = "获取店铺列表")
    @PostMapping(value = "/api/shop/get_all")
    public BaseResult getAll();

    @ApiOperation(value = "添加店铺")
    @PostMapping(value = "/api/shop/add_shop")
    public BaseResult<ShopVO> addShop(@RequestBody @Validated ShopAddDTO dto);

    @ApiOperation(value = "修改店铺状态")
    @PostMapping(value = "/api/shop/update_shop_status")
    public BaseResult updateShopStatus(@RequestParam("shopId") Long shopId, @RequestParam("status") Integer status);

    @ApiOperation(value = "添加店铺扩展信息")
    @PostMapping(value = "/api/shop/add_shop_extend")
    public BaseResult addShopExtend(@RequestBody @Validated ShopExtendAddDTO dto);

    @ApiOperation(value = "根据店铺查询直播间中被拉黑用户列表")
    @PostMapping(value = "/api/shop/get_banned_user_list_by_shop")
    public BaseResult getBannedUserListByShop(@RequestParam("shopId") String shopId);
}
